#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "centroide.h"

using namespace std;
//construtor default
//------------------------------------------------------------------------------
Centroide::Centroide(){
  dimnum = grupoowner = 0;
  coordenada = coordanterior = NULL; 
  status = 0;                      
}
//------------------------------------------------------------------------------

//segundo construtor
//------------------------------------------------------------------------------
Centroide::Centroide(int dim){
  dimnum = dim;     
  
   coordenada = new float[dimnum];
   coordanterior = new float [dimnum];
  
  
  grupoowner = 0;  
  status = 0;                 
}
//------------------------------------------------------------------------------

//mostra as coordenadas do centroide na tela ... no formato: x,y,...n
//------------------------------------------------------------------------------
void Centroide::MostraCentroide(){
     for(int i=0;i<dimnum;i++)
        cout << coordenada[i] << ",";
        
     cout << endl;
}
//------------------------------------------------------------------------------

//pergunta ao usuario o numero de dimensoes do centroide
//------------------------------------------------------------------------------
void Centroide::GetDim(){
     cout << "Insira o numero de dimensoes do centroide: " ;
     cin >> dimnum;     
     coordenada = new float[dimnum];
     coordanterior = new float [dimnum];
}
//------------------------------------------------------------------------------

//insere dimensoes no centroide
//------------------------------------------------------------------------------
void Centroide::InsereDim(int n){
     dimnum = n;
     coordenada = new float[dimnum];
     coordanterior = new float[dimnum];
}
//------------------------------------------------------------------------------

//retorna o numero de dimensoes do centroide
//------------------------------------------------------------------------------
int Centroide::RetornaDim(){
 return dimnum;               
}
//------------------------------------------------------------------------------

//insere um rotulo no centroide
//------------------------------------------------------------------------------
void Centroide::InsertOwnerGrup(int g){
    grupoowner = g; 
}
//------------------------------------------------------------------------------

//retorna o rotulo do centroide
//------------------------------------------------------------------------------
int Centroide::RetornaOwnerGrup(void){
    return grupoowner;
}
//------------------------------------------------------------------------------

//seta um status para o centroide... valores maiores que zero, significa que o centroide esta parado
//------------------------------------------------------------------------------
void Centroide::SetStatus(int s){
     status = s;
}
//------------------------------------------------------------------------------

//retorna o status do centroide, se ele esta parado ou se esta sendo remanejado
//------------------------------------------------------------------------------
int Centroide::GetStatus(){
    return status; 
}
//------------------------------------------------------------------------------

//seta um estado no centroide somando com o estado anterior
//------------------------------------------------------------------------------
void Centroide::SetStatusSoma(int s){
     status += s;     
}
//------------------------------------------------------------------------------
